#pragma once
#include "DXAMLCommon.h"
#include "IManagedInteropObject.h"


class CClassInfo;
class CDependencyProperty;
class CValue;
struct Xcp_IDependencyObject : 
	public IManagedInteropObject
{
public: 
	/*0008 0x00000008 +00000032*/ virtual HRESULT                        GetValue(CDependencyProperty * pdp, CValue * pValue) = 0;
	/*0009 0x00000009 +00000036*/ virtual HRESULT                        SetValue(CDependencyProperty * pdp, CValue * pValue) = 0;
	/*0010 0x0000000A +00000040*/ virtual HRESULT                        AddEventListener(CDependencyProperty * pdp, CValue * pValue, XINT32 iListenerType, CValue * pResult, XBOOL fHandledEventsToo) = 0;
	/*0011 0x0000000B +00000044*/ virtual HRESULT                        RemoveEventListener(CDependencyProperty * pdp, CValue * pValue) = 0;
	/*0012 0x0000000C +00000048*/ virtual struct Xcp_IDependencyObject * GetParent() = 0;
	/*0013 0x0000000D +00000052*/ virtual struct Xcp_IDependencyObject * GetTemplatedParent() = 0;
	/*0014 0x0000000E +00000056*/ virtual CXString *                     GetClassNameW() = 0;
	/*0015 0x0000000F +00000060*/ virtual XUINT32                        GetNamespaceIndex() = 0;
	/*0016 0x00000010 +00000064*/ virtual XUINT32                        OfTypeByIndex(XUINT32 nIndex) = 0;
	/*0017 0x00000011 +00000068*/ virtual CClassInfo *                   GetClassInfoW() = 0;
	/*0018 0x00000012 +00000072*/ virtual CDependencyProperty *          GetContentProperty() = 0;
	/*0019 0x00000013 +00000076*/ virtual HRESULT                        GetParentOfFrameworkElement(CValue * pValue) = 0;
	/*0020 0x00000014 +00000080*/ virtual CDependencyProperty *          GetPropertyByName(XUINT32 cName, const XCHAR * pName, XBOOL bUpperCamelCase) = 0;
	/*0021 0x00000015 +00000084*/ virtual CDependencyProperty *          GetPropertyByIndex(XUINT32 nIndex) = 0;
	/*0022 0x00000016 +00000088*/ virtual struct ICoreServices *         GetContextInterface() = 0;
	/*0023 0x00000017 +00000092*/ virtual struct Xcp_IAutomationPeer *   OnCreateAutomationPeer() = 0;
	/*0024 0x00000018 +00000096*/ virtual struct Xcp_IAutomationPeer *   OnCreateAutomationPeerImpl() = 0;
	/*0025 0x00000019 +00000100*/ virtual XUINT32                        GetAPChildren(struct Xcp_IAutomationPeer * * * pppReturnAP) = 0;
	/*0026 0x0000001A +00000104*/ virtual struct Xcp_IAutomationPeer *   GetPopupAssociatedAutomationPeer() = 0;

} ;

//typedef Xcp_IDependencyObject IDependencyObject;



